Many applications and services communicate information over data networks, such as the Internet, in the form of data packets. In a typical data network, network devices (e.g., routers) process and forward the data packets to neighboring network devices utilizing one or more adjacent network paths or links according to addressing information contained therein. Network devices in a data network use routing protocols to send and receive information about directly connected network links to all other network devices in the network. Two commonly used routing protocols are Open Shortest Path First (“OSPF”) and Intermediate System-to-Intermediate System (“IS-IS”). Network devices use the information communicated via the routing protocols to build one or more routing tables which give a common topological view of the data network. Thus, each network device has the same “view” of the network as every other network device. Once this common view of the network is built, the routing protocols build a Shortest Path First tree (or “SPF” tree) in order to determine the “best” path from one network device to another device.
A single service provider may utilize a data network to communicate data, voice, and video contained in data packets, to its customers. In providing these multiple services to customers, service providers are often faced with the challenge of integrating different types of services based on disparate technologies into a single data network. For example, service providers of internet protocol (“IP”) based voice and data applications must engineer IP-based data networks to comply with specific quality of service (“QoS”) requirements associated with each service. For example, Voice over IP (“VoIP”) telephony requires a minimum amount of end-to-end latency (i.e., delay) and jitter while IP-based video demands low latency and minimal packet loss.
Thus, one of the foremost challenges faced by service providers is in keeping network delay to a minimum so as to assure minimum QoS requirements. Currently, service providers attempt to minimize delay by configuring network devices to send data packets over the network paths having the highest bandwidth (i.e., the network path capable of transmitting the greatest amount of data in a fixed amount of time). Generally, this is accomplished by configuring the routing protocols (e.g., OSPF or IS-IS) in network devices to calculate a “cost” metric based on the inverse of the current bandwidth of connected network paths. Thus, when building the SPF tree in order to determine the “best” path from one network device to another device, the routing protocols will select the path calculated as having the lowest cost (i.e., the highest bandwidth). As a result, the network devices within the network will route data packets over the network path having the lowest cost. Unfortunately, current methods for minimizing network delay suffer from a number of drawbacks.
One drawback associated with current methods for minimizing network delay is that the lowest cost path is not always the “best” path for applications having specific QoS requirements. For example, the “best” path for VoIP voice traffic largely depends on the shortest end-to-end latency which is not measured by current routing protocols. Another drawback associated with current methods for minimizing network delay is that engineering the network to adapt to the QoS requirements for applications such as VoIP and IP-based video requires the manual collection of network management data from the network and reliance on out-of-band-post-processing (typically provided by a third-party application) to generate an optimized network topology for the network. Thus, there is no real-time or near real-time integration of current routing protocols.